package com.billdowney.util.mail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailMessage {

	private static final String sendMail = "773213931@qq.com";// 发件人邮箱
	private static final String username = "773213931@qq.com";// 验证用的用户名
	private static final String passowrd = "vwrryherrbwnbaib";// 验证用的密码或授权码

	/**
	 * 过时的方法，如果存在spring boot mail，则推荐使用
	 * 
	 * @param subject     发送邮件的主题
	 * @param content     发送邮件的内容
	 * @param peopleMails 收件人列表
	 * @param mailType    发送邮件类型
	 * @return
	 * @anthor billdonwey
	 */
	@Deprecated
	public static boolean sendMail(String subject, String content, InternetAddress[] peopleMails, MailType mailType) {
		Properties prop = new Properties();
		prop.setProperty("mail.transport.protocol", "smtp");// 连接时的协议
		prop.setProperty("mail.smtp.host", mailType.getUrl());// 主机名
		prop.setProperty("mail.smtp.port", "465");// 主机名
		prop.setProperty("mail.smtp.auth", "true");// 是否开启权限控制
		prop.setProperty("mail.smtp.ssl.enable", "true");
		prop.setProperty("mail.debug", "true");// 如果设置为true则在发送邮件时会打印发送时的信息

		// 创建程序到邮件服务器之间的一次回话
		Session session = Session.getInstance(prop);
		// 获取邮件对象
		Message msg = new MimeMessage(session);
		try {
			msg.setFrom(new InternetAddress(sendMail));// 发送方的QQ邮箱
			msg.setRecipients(RecipientType.TO, peopleMails);// 收件人列表
			msg.setHeader("Content-Type", "text/plain; charset=utf-8");
			msg.setSubject(subject);// 邮件的标题
			msg.setText(content);// 邮件的内容
			// 准备发送邮件
			Transport transport = session.getTransport();
			transport.connect(username, passowrd);// 设置用户名和密码
			transport.sendMessage(msg, msg.getAllRecipients());// 发送邮件
			return true;
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}

}
